const express = require('express');
const mongoose = require('mongoose');
const cors = require('cors');
const questionsRouter = require('./routes/questions');

const app = express();

// CORS 配置
app.use(cors({
  origin: '*'  // 允许所有来源访问，生产环境建议设置具体域名
}));

app.use(express.json());

// 添加一个测试路由
app.get('/test', (req, res) => {
  res.json({ message: 'API 服务器正在运行' });
});

// MongoDB 连接配置
const mongoURI = 'mongodb://localhost:27017/questionBank';
const mongoOptions = {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    serverSelectionTimeoutMS: 5000, // 超时时间
    socketTimeoutMS: 45000, // Socket 超时
    connectTimeoutMS: 10000, // 连接超时
};

// 连接MongoDB
mongoose.connect(mongoURI, mongoOptions)
    .then(() => {
        console.log('MongoDB连接成功');
    })
    .catch((err) => {
        console.error('MongoDB连接失败:', err);
    });

// 添加连接错误处理
mongoose.connection.on('error', err => {
    console.error('MongoDB 错误:', err);
});

mongoose.connection.on('disconnected', () => {
    console.log('MongoDB 断开连接，尝试重连...');
});

// 添加调试日志
app.use((req, res, next) => {
  console.log(`${req.method} ${req.url}`);
  next();
});

// 路由
app.use('/api/questions', questionsRouter);

// 添加 404 处理
app.use((req, res) => {
  console.log('404 Not Found:', req.method, req.url);
  res.status(404).json({ error: 'Not Found' });
});

// 监听本地接口
const PORT = process.env.PORT || 3000;
app.listen(PORT, 'localhost', () => {
    console.log(`服务器运行在 http://localhost:${PORT}`);
}); 